﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace CentroVentas.Funciones.Compras
{
    public partial class FrmConfirmarOrdenDeCompra : Form
    {
        private int _idUsuario;
        private int _idCompra;

        public FrmConfirmarOrdenDeCompra(int idUsuario)
        {
            InitializeComponent();
            _idUsuario = idUsuario;
            _idCompra = 0;
        }

        private void FrmConfirmarOrdenDeCompra_Load(object sender, EventArgs e)
        {
            btnConfirmar.Enabled = false;
            txtCodigo.Focus();
        }

        private void txtCodigo_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (String.IsNullOrWhiteSpace(txtCodigo.Text))
                {
                    Clases.Utiles.Utilidades.mensaje(Clases.Utiles.TipoMensaje.ERROR, "Debe escribir un código", 1);
                }
                else
                {
                    try
                    {
                        Clases.Funciones.Compra compra = new Clases.Funciones.Compra(txtCodigo.Text);
                        if (!compra.Estado)
                        {
                            _idCompra = compra.Id;

                            Clases.Funciones.Proveedores proveedor = compra.Proveedor;
                            txtRut.Text = proveedor.Rut;
                            txtNombre.Text = proveedor.Nombre;
                            txtContacto.Text = proveedor.Contacto;
                            txtDireccion.Text = proveedor.Direccion1;
                            txtDireccion2.Text = proveedor.Direccion2 + ", " + proveedor.Ciudad;
                            txtTelefono.Text = proveedor.Telefono;
                            txtEmail.Text = proveedor.Email;


                            txtVendedor.Text = compra.NombreComprador;
                            txtFecha.Text = compra.FechaPedido.ToString();
                            if (compra.Estado)
                            {
                                txtEstado.Text = "Confirmada";
                                btnConfirmar.Enabled = false;
                            }
                            else
                            {
                                txtEstado.Text = "Sin confirmar";
                                btnConfirmar.Enabled = true;
                            }

                            // TODO: Sumar correctamente la cantidad.
                            //txtCantidad.Text = compra.CantidadProductos + " Un.";
                            txtTotal.Text = Clases.Currency.formatearMoneda(compra.Total);



                            dgv.DataSource = compra.DetalleCompras.Tables[0];
                            dgv.DataMember = compra.DetalleCompras.Tables[0].TableName;

                            
                        }
                        else
                        {
                            Clases.Utiles.Utilidades.mensaje(Clases.Utiles.TipoMensaje.ERROR, "Compras ya terminada.Compras", 1);
                        }
                    }
                    catch (Exception ex)
                    {
                        Clases.Utiles.Utilidades.mensaje(Clases.Utiles.TipoMensaje.ERROR,ex.Message , 1);
                    }
                    
                }
            }
        }

        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            if (_idCompra != 0)
            {
                Clases.Funciones.Compra compra = new Clases.Funciones.Compra(_idCompra);
                compra.Estado = true;
                btnConfirmar.Enabled = false;

                Clases.Utiles.Utilidades.mensaje(Clases.Utiles.TipoMensaje.OK, "Operación realizada.", 1);
            }
            else
            {
                Clases.Utiles.Utilidades.mensaje(Clases.Utiles.TipoMensaje.ERROR, "No es posible realizar la operación.", 1);
            }
        }

    }
}
